home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Ebooks / Thinking in C++ V2 / C19 / Nobloat.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-25  |  687 b   |  36 lines

  1. //: C19:Nobloat.h
  2. // From Thinking in C++, 2nd Edition
  3. // Available at http://www.BruceEckel.com
  4. // (c) Bruce Eckel 1999
  5. // Copyright notice in Copyright.txt
  6. // Templatized InheritStack.cpp
  7. #ifndef NOBLOAT_H
  8. #define NOBLOAT_H
  9. #include "Stack4.h"
  10.  
  11. template<class T>
  12. class NBStack : public Stack {
  13. public:
  14.   void push(T* str) {
  15.     Stack::push(str);
  16.   }
  17.   T* peek() const {
  18.     return (T*)Stack::peek();
  19.   }
  20.   T* pop() {
  21.     return (T*)Stack::pop();
  22.   }
  23.   ~NBStack();
  24. };
  25.  
  26. // Defaults to heap objects & ownership:
  27. template<class T>
  28. NBStack<T>::~NBStack() {
  29.   T* top = pop();
  30.   while(top) {
  31.     delete top;
  32.     top = pop();
  33.   }
  34. }
  35. #endif // NOBLOAT_H ///:~
  36.